package com.pzhu.dormitory.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.pzhu.dormitory.dto.UserDTO;
import com.pzhu.dormitory.entity.UserEntity;
import com.pzhu.dormitory.utils.PageUtils;
import com.pzhu.dormitory.utils.R;
import com.pzhu.dormitory.vo.UserRoleVo;
import com.pzhu.dormitory.vo.UserVo;

import java.util.Map;

/**
 * 后台用户表
 *
 * @author
 * @email
 * @date 2021-04-10 08:46:25
 */
public interface UserService extends IService<UserEntity> {
    PageUtils<UserEntity> queryPage(Map<String, Object> params);

    /**
     * 通过用户名获取 用户权限信息
     *
     * @param username 用户名
     * @return 用户权限封装
     */
    UserDTO loadUserByUserName(String username);


    /**
     * 通过用户id 加载用户和权限信息
     *
     * @param userId 用户id
     * @return
     */
    UserDTO loadUserByUserId(String userId);

    /**
     * 注册
     *
     * @param userEntity
     * @return
     */
    R<String> register(UserEntity userEntity);

    /**
     * 通过用户名获取用户信息
     *
     * @param username
     * @return
     */
    UserVo getUserInfoByUsername(String username);

    /**
     * 加载用户角色
     *
     * @param userId
     * @return
     */
    UserRoleVo loadRoles(String userId);
}

